package com.calvin.study.ocr6;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.calvin.study.ocr6.Product;

@Component
public class ProcessorChain {
	// 保存处理节点
	@Autowired
	private List<IParseService> processorList = new ArrayList<>();

	// 处理节点下标
	private int index = 0;

	// 获取处理器处理
	public boolean process(Product product) throws Exception {
		if (index == processorList.size()) {
			//避免出现责任链死循环（没有任何一个链满足要求）
			return true;
		}
		IParseService processor = processorList.get(index);
		index++;
		// 根据不同处理器进行处理
		return processor.parseMx(product, this);
	}

}
